<?php

class AccountsController extends AppController {
  var $uses = array();
  
  function checkAuth() {
    $this->account = $this->Auth->user(); 
    if (!$this->account) {
      $this->setError(
        'Um Konten zu bearbeiten, musst du angemeldet sein.', 
        array('controller' => 'points', 'action' => 'home'));
    }
  } 

  function delete($id, $model_prefix = 'Local') {
    $this->checkAuth();
    $model_name = $model_prefix . 'Account';
    $model = $this->{$model_name};
    $user_id = $model->field('user_id', array("{$model_name}.id" => $id));

    $my_user_id = $this->User->user_id($this->account);
    if ($user_id != $my_user_id) {
      $this->setError(
        'Du kannst nur deine eigenen Konten löschen.', 
        array('controller' => 'users', 'action' => 'view', $user_id, 'accounts'));
    }

    // In this case, $model_name is also set in $this->account
    if ($id == @$this->account[$model_name]['id']) {
      $this->setError(
        'Du bist über dieses Konto angemeldet und kannst es daher nicht löschen.', 
        array('controller' => 'users', 'action' => 'view', $user_id, 'accounts'));
    }

    if ($model->delete($id)) {
      $this->setSuccess(
        'Das Konto wurde gelöscht.', 
        array('controller' => 'users', 'action' => 'view', $user_id, 'accounts'));
    }
    else {
      $this->setError(
        'Das Konto konnte nicht gelöscht werden.', 
        array('controller' => 'users', 'action' => 'view', $user_id, 'accounts'));
    }
  }
}
